package xj.graph2d.shapes.uml;

import xj.graph2d.GraphEdgeBase;
import xj.graph2d.DrawShape;
import xj.graph2d.graph.GraphNode;
import xj.model.uml.State;

public interface StateShape 
  extends GraphNode<GraphEdgeBase>, DrawShape {

  public String getStateName();

  public void setStateName(String cname);

  public String getStateStereotypes();

  public void setStateStereotypes(String st);

  // shape --> model
  public void getActions(State state);

  // model --> shape
  public void setActions(State state);

  public boolean isActionCompartmentShown();

  public void showActionCompartment();

  public void hideActionCompartment();

  public void initAction(DrawShape action);

  public DrawShape getActionBox();

  public boolean isModernStyle();

  public void changeStyle(DrawShape action);

  //public void fitCompartments();
  public void doLayout();

}
